package zt1;
/*
题目：全等三角形
样例输入
3 4
AAAA
ALAQ
ALQQ
样例输出
4

样例输入
6 7
AAAAAAA
ALLLLLA
ALQQLAA
ALQLAAC
ALLAACC
ALAACCC
样例输出
23
 */
import java.util.Scanner;

public class Main {
	static char[][] arr;
	static int len,n,m,k;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		m=sc.nextInt();
		arr=new char[n][m];
		for(int i=0;i<n;i++) {
			String temp=sc.next();
			for(int j=0;j<m;j++) {
				arr[i][j]=temp.charAt(j);
			}
		}
		long res=0;
		len=Math.min(n, m);
		for(k=1;k<len;k++) {
			for(int i=0;i<n;i++) {
				for(int j=0;j<m;j++) {
					res+=(check(i, j, 1, 0)&&check(i, j, 0, 1)&&check(i, j+k, 1, -1))?1:0;
					res+=(check(i, j, 1, 0)&&check(i, j, 0, -1)&&check(i, j-k, 1, 1))?1:0;
					res+=(check(i, j, -1, 0)&&check(i, j, 0, 1)&&check(i, j+k, -1, -1))?1:0;
					res+=(check(i, j, -1, 0)&&check(i, j, 0, -1)&&check(i, j-k, -1, 1))?1:0;
					
				}
			}
		}
		System.out.println(res);
	}
	static boolean check(int x,int y,int n1,int n2) {
		char c=arr[x][y];
		for(int i=0;i<k;i++) {
			x+=n1;
			y+=n2;
			if (x<0||x>=n||y<0||y>=m) {
				return false;
			}
			if (arr[x][y]!=c) {
				return false;
			}
		}
		return true;
	}
}

